Enterprises and organizations expose their business information and functionality on the web through software applications, usually referred to as “web applications” which use Internet technologies and infrastructures. Web applications are generally: (a) event-driven software programs which react to hypertext transfer protocol (HTTP) requests from a client, and (b) executed on application servers coupled to back-end systems.
FIG. 1 shows an exemplary data center 100 that is utilized for executing web applications. As indicated in FIG. 1, clients 110-1-100-N submit requests (for example, HTTP requests) to web servers 120-1-120-M through network 170. Load balancer 160 distributes the requests among web servers 120-1-120-M to balance the load. Web servers 120-1-120-M dynamically generate a presentation using servlets, extensible markup language (XML), extensible style-sheet language (XSL), or the like. Application servers 130-1-130-Q are often responsible for deploying and running a business logic layer and for interacting with and integrating various enterprise-wide resources, such as web servers 120-1-120-M, and back-end systems 150. Back-end systems 150 may include, for example, a database and a legacy system.
In the prior art there are many tools to monitor the operation and performance of data centers to prevent situations such as an unpredictable level of service and an uncontrolled user experience from occurring. Typically, such monitoring tools provide a fault management or performance management function where: (a) fault management pertains to whether a component (a device or an application) is operating or not, and (b) performance management pertains to a measure of how well a component is working and to historical and future trends.
Existing performance management tools typically measure performance parameters, such as latency, errors, and throughput, which may be influenced by different systems in a path. For example, a latency measure typically encompasses an entire duration between sending a request from a client (for example, one of clients 110-1-110-N) to an application server (for example, one of application servers 130-1-130-Q) and receiving the full reply. This information is not always sufficient to help a system administrator determine the source of latency problems. That is, a latency problem can be at: (a) network 170, (b) a web server (for example, one of web servers 120-1-120-M), (c) an application server (for example, one of application servers 130-1-130-Q), or (d) back-end systems 150.